﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BusinessLayer.Implementacion;
using BusinessLayer.Interfaces;
using EntityLayer;
using DevExpress.Web.ASPxEditors;
using System.Collections;
using DevExpress.Web.ASPxPopupControl;
using DevExpress.Web.ASPxGridView;
using System.Text;
using System.IO;
using System.Configuration;

namespace pryTransfinter.Transaciones

{
    public partial class WfrmVerificarTransferencia1 : System.Web.UI.Page
    {
        IFacadeSolicitarTrasnferencia blSolicitarTransferencia;
        IFacadeGestionarTransferencia blGestionarTransferencia;
        IFacadeActualizarTransferencia blActualizarTransferencia;
        IFacadeActualizarBeneficiario blActualizarBeneficiario;

        public static string idresponsable = "E88456";
        public static string idopcion;
        public string source;
        public FileInfo vArchivo;
        protected void Page_Load(object sender, EventArgs e)
        {
            string idOpcion1 = Convert.ToString(dgvTransfModif.GetRowValues(dgvTransfModif.FocusedRowIndex, "idcCliente"));
            if (idOpcion1==null)
            {
                idOpcion1 = "0";
            }
            if (!IsPostBack)
            {
                this.cargarGrilla();
                
                //this.cargarComboCuentaBenef();
                this.listarGrilla();
                //this.cargarData();
                this.cargarGrillaModificar();
                this.cargarCuentaBeneficiarioModificar();
            }
            //source = Path.GetTempFileName();
            //vArchivo = new FileInfo(source);
            
            if (idOpcion1!=string.Empty)
            {
                this.cargarComboCuenta(idOpcion1);
                this.cargarComboCuentaBenef(idOpcion1);
		 
	}
            
        }

        void cargarGrilla()
        {
            blGestionarTransferencia = new FacadeGestionarTransferencia_Imp();
            try
            {
                dgvTransfModif.DataSource = blGestionarTransferencia.FiltroResponsable(idresponsable);
                dgvTransfModif.DataBind();
            }
            catch (Exception ex )
            {
                lblmensOk.Text = ex.InnerException.Message == null ? ex.Message : ex.InnerException.Message;
                popupOK.ShowOnPageLoad = true;
              
            }
        }


        void cargarData()
        {
            blGestionarTransferencia = new FacadeGestionarTransferencia_Imp();
            List<Globales.lista_TransferenciaReponsable> lista = new List<Globales.lista_TransferenciaReponsable>();
            string idOpcion1 = Convert.ToString(dgvTransfModif.GetRowValues(dgvTransfModif.FocusedRowIndex, "nroOperacion"));
            if (idOpcion1 != string.Empty)
            {
                lista = blGestionarTransferencia.listaVerificacion(idOpcion1);

                txtMonto.Text = lista[0].monto.ToString();
                txtNroOpe.Text = lista[0].nroOperacion;
            }
        }
        protected void dgvTransfModif_SelectionChanged(object sender, EventArgs e)
        {
            //blSolicitarTransferencia = new FacadeSolicitarTransferencia_Imp();
            //List<Globales.lista_TransferenciaReponsable> lista = new List<Globales.lista_TransferenciaReponsable>();
            //string idOpcion = Convert.ToString(dgvTransfModif.GetRowValues(dgvTransfModif.FocusedRowIndex, "nroOperacion"));
            //if (idOpcion != string.Empty)
            //{
            //    lista = blSolicitarTransferencia.listaVerificacion(idOpcion);

            //    txtMonto.Text = lista[0].monto.ToString();
            //    txtNroOpe.Text = lista[0].nroOperacion;
            //}
        }


        void cargarComboCuenta(string cliente)
        {
            blSolicitarTransferencia = new FacadeSolicitarTransferencia_Imp();
            
            try
            {
                
                cboOrdCuenta.DataSource = blSolicitarTransferencia.listaClientexID(cliente);
                cboOrdCuenta.TextField = "nroCuenta";
                cboOrdCuenta.ValueField = "nroCuenta";
                cboOrdCuenta.DataBind();
                cboOrdCuenta.Items.Insert(0, new ListEditItem("[SELECCIONE]", ""));
            }
            catch (Exception)
            {
            }

        }

        void cargarComboCuentaBenef(string cliente)
        {
            blSolicitarTransferencia = new FacadeSolicitarTransferencia_Imp();
            
            try
            {
                cboBenefCuenta.DataSource = blSolicitarTransferencia.listarBeneficiarioXCliente(cliente);
                cboBenefCuenta.TextField = "cuentaBeneficiario";
                cboBenefCuenta.ValueField = "cuentaBeneficiario";
                cboBenefCuenta.DataBind();
                cboBenefCuenta.Items.Insert(0, new ListEditItem("[SELECCIONE]", ""));
            }
            catch (Exception)
            {
                
            }
        }
        void getListadoPorNroOperacion()
        {

        }

        public void HabilitarD() { 
        txtNroOpe.Enabled =false;
        txtSupervisor.Enabled = false;
        txtBcoCorresp.Enabled = true;
        cboOrdCuenta.Enabled = false;
        txtOrdNom.Enabled = false;
        cboMoneda.Enabled = false;
        dtpFechaValor.Enabled = true;
        txtMonto.Enabled = false;
        txtBcoIntermediario.Enabled = true;
        txtBcoDestino.Enabled = false;
        cboBenefCuenta.Enabled = false;
        txtBenefNombre.Enabled = false;
        txtBenefDireccion.Enabled = false;
        cboTipoCargo.Enabled = false;
        txtDetallePago.Enabled = false;
        txtInfBcoBco.Enabled = true;
        txtObservaciones.Enabled = true;
        btnAgregarBenef.ClientEnabled = false;
        }
        public void HabilitarC()
        {
            txtNroOpe.Enabled = false;
            txtSupervisor.Enabled = true;
            txtBcoCorresp.Enabled = true;
            cboOrdCuenta.Enabled = true;
            txtOrdNom.Enabled = true;
            cboMoneda.Enabled = true;
            dtpFechaValor.Enabled = true;
            txtMonto.Enabled = true;
            txtBcoIntermediario.Enabled = true;
            txtBcoDestino.Enabled = true;
            cboBenefCuenta.Enabled = true;
            txtBenefNombre.Enabled = true;
            txtBenefDireccion.Enabled = true;
            cboTipoCargo.Enabled = true;
            txtDetallePago.Enabled = true;
            txtInfBcoBco.Enabled = true;
            txtObservaciones.Enabled = true;
            btnAgregarBenef.ClientEnabled = true;
        }

        protected void dgvTransfModif_FocusedRowChanged(object sender, EventArgs e)
        {
            
            blGestionarTransferencia = new FacadeGestionarTransferencia_Imp();
            List<Globales.lista_TransferenciaReponsable> lista = new List<Globales.lista_TransferenciaReponsable>();
            List<TB_Cuenta_Cliente> listaCuentaCliente = new List<TB_Cuenta_Cliente>();
            string idOpcion1 = Convert.ToString(dgvTransfModif.GetRowValues(dgvTransfModif.FocusedRowIndex, "nroOperacion"));

            if (idOpcion1 != string.Empty)
            {
                if (idOpcion1.Substring(0, 1) == "D")
                {
                    HabilitarD();
                }
                if (idOpcion1.Substring(0, 1) == "C")
                {
                    HabilitarC();
                }
            }
    //        if (idOpcion1 ==string.Empty)
    //        {
    //            return;
    //        }
    //        if (idOpcion1.Substring(0,1)=="D")
    //{
    //     dtpFechaValor.ClientEnabled=false;
    //            txtBcoCorresp.ClientEnabled=false;
    //            txtBcoDestino.ClientEnabled=false;
    //}else if (idOpcion1.Substring(0,1)=="C")
    //{
    //    dtpFechaValor.ClientEnabled = true;
    //    txtBcoCorresp.ClientEnabled = true;
    //    txtBcoDestino.ClientEnabled = true;
    //}
            
            if (idOpcion1 != string.Empty)
            {
                lista = blGestionarTransferencia.listaVerificacion(idOpcion1);
                if (lista.Count == 0)
                {
                    List<Globales.lista_TransferenciaReponsable> listaC = new List<Globales.lista_TransferenciaReponsable>();
                 
                    listaC = blGestionarTransferencia.listaVerificacionC(idOpcion1);

                    if (listaC.Count == 0)
                    {
                        return;
                    }
                    txtMonto.Text = listaC[0].monto.ToString();
                    txtNroOpe.Text = listaC[0].nroOperacion;
                    txtcliente.Text = listaC[0].idcCliente;
                    List<TB_Supervisor> listaS = new List<TB_Supervisor>();
                   
                    listaS = blGestionarTransferencia.listarSupervisorxID(listaC[0].matriculaSupervisor);
                    if (listaS.Count != 0)
                    {
                        txtSupervisor.Text = listaS[0].nomSupervisor;
                    }
                    
                    txtBcoCorresp.Text = listaC[0].codigoCorresponsal;
                    listaCuentaCliente = blGestionarTransferencia.listaClientexID(listaC[0].idcCliente);
                    if (listaCuentaCliente.Count != 0) 
                    {
                        cboOrdCuenta.Value = listaCuentaCliente[0].nroCuenta;
                    }

                    this.cargarComboCuentaBenef(listaC[0].idcCliente);
                    txtOrdNom.Text = listaC[0].nomCliente;
                    txtBcoDestino.Text = listaC[0].codigoBcoDestino;
                    cboBenefCuenta.Value = listaC[0].cuentaBeneficiario;
                    txtBenefNombre.Text = listaC[0].nomBeneficiario;
                    txtBenefDireccion.Text = listaC[0].dirBeneficiario;
                    cboTipoCargo.Value = listaC[0].tipoCargo;
                    txtDetallePago.Text = listaC[0].detallePago;
                    txtInfBcoBco.Text = listaC[0].infBcoBco;
                    txtObservaciones.Text = listaC[0].observaciones;
                    dtpFechaValor.Date = listaC[0].fecValor;
                    Session["fecha"] = dtpFechaValor.Date;
                    txtBcoIntermediario.Text = listaC[0].codBcoIntermediario;
                    txtBcoIntermediario.Text = listaC[0].codBcoIntermediario;
                    if (listaC[0].codBcoIntermediario1 == "" || listaC[0].codBcoIntermediario1 == null)
                    {txtBcoIntermediario1.Text=listaC[0].codBcoIntermediario1;
                        
                    }
                    else
                    {
                        txtBcoIntermediario1.Text = "";
                    }
                    //txtBcoIntermediario2.Text = listaC[0].codBcoIntermediario2 == null ? "" : lista[0].codBcoIntermediario1;
                    cboMoneda.Value = listaC[0].moneda;
                    Session["idSupervisor"] = listaC[0].matriculaSupervisor;
                }
                else
                {
                    txtMonto.Text = lista[0].monto.ToString();
                    txtNroOpe.Text = lista[0].nroOperacion;
                    txtcliente.Text = lista[0].idcCliente;
                    txtSupervisor.Text = lista[0].nomSupervisor;
                    txtBcoCorresp.Text = lista[0].codigoCorresponsal;
                    listaCuentaCliente = blGestionarTransferencia.listaClientexID(lista[0].idcCliente);
                    if (listaCuentaCliente.Count != 0)
                    {
                        cboOrdCuenta.Value = listaCuentaCliente[0].nroCuenta;
                    }

                    this.cargarComboCuentaBenef(lista[0].idcCliente);
                    txtOrdNom.Text = lista[0].nomCliente;
                    txtBcoDestino.Text = lista[0].codigoBcoDestino;
                    cboBenefCuenta.Value = lista[0].cuentaBeneficiario;
                    txtBenefNombre.Text = lista[0].nomBeneficiario;
                    txtBenefDireccion.Text = lista[0].dirBeneficiario;
                    cboTipoCargo.Value = lista[0].tipoCargo;
                    txtDetallePago.Text = lista[0].detallePago;
                    txtInfBcoBco.Text = lista[0].infBcoBco;
                    txtObservaciones.Text = lista[0].observaciones;
                    dtpFechaValor.Date = lista[0].fecValor;
                    Session["fecha"] = dtpFechaValor.Date;
                    txtBcoIntermediario.Text = lista[0].codBcoIntermediario;
                    txtBcoIntermediario.Text = lista[0].codBcoIntermediario;
                    if (lista[0].codBcoIntermediario1 != "" || lista[0].codBcoIntermediario1 != null)
                    {
                        txtBcoIntermediario1.Text = lista[0].codBcoIntermediario1;

                    }
                    else
                    {
                        txtBcoIntermediario1.Text = "";
                    }
                    //txtBcoIntermediario2.Text = lista[0].codBcoIntermediario1 == null ? "" : lista[0].codBcoIntermediario1;
                    cboMoneda.Value = lista[0].moneda;
                    Session["idSupervisor"] = lista[0].matriculaSupervisor;
                }
            }
            
        }

        protected void cboBenefCuenta_SelectedIndexChanged(object sender, EventArgs e)
        {
            List<TB_Beneficiario> listaBeneficiario = new List<TB_Beneficiario>();

            listaBeneficiario = this.obtenerBeneficiario(Convert.ToString(cboBenefCuenta.Text));
            if (listaBeneficiario.Count != 0)
            {
                txtBenefNombre.Text = listaBeneficiario[0].nomBeneficiario;
                txtBenefDireccion.Text = listaBeneficiario[0].dirBeneficiario;
            }
        
        }

        protected void cboOrdCuenta_SelectedIndexChanged(object sender, EventArgs e)
        {
            //txtOrdNom.Text = this.obtenerCliente(Convert.ToString(cboOrdCuenta.Value));
        }

        string obtenerCliente(string idcliente)
        {
            string cliente = "";
            List<TB_Cliente> listaCliente = new List<TB_Cliente>();
            try
            {
                blSolicitarTransferencia = new FacadeSolicitarTransferencia_Imp();

                listaCliente = blSolicitarTransferencia.getNombreCliente(idcliente);
                if (listaCliente.Count!=0)
                {
                    cliente=listaCliente[0].nomCliente;
                }
            }
            catch (Exception ex)
            {
                return cliente = "";
            }
            return cliente;
        }

        List<TB_Beneficiario> obtenerBeneficiario(string id)
        {
            blSolicitarTransferencia = new FacadeSolicitarTransferencia_Imp();
            List<TB_Beneficiario> listaBeneficiario = new List<TB_Beneficiario>();
            try
            {
                listaBeneficiario = blSolicitarTransferencia.getBeneficiario(id);
            }
            catch (Exception ex)
            {
                popupOK.HeaderText = "Error al obtener Beneficiario";
                popupOK.ShowOnPageLoad = true;
                lblmensOk.Text = ex.Message;
            }
            return listaBeneficiario;
        }

        public void limpiarcontroles()
        {
            txtNroOpe.Text = string.Empty;
            txtBcoCorresp.Text = string.Empty;
            txtBcoDestino.Text = string.Empty;
            txtBcoIntermediario.Text = string.Empty;
            txtBcoIntermediario1.Text = string.Empty;
            txtBcoIntermediario2.Text = string.Empty;
            txtBenefDireccion.Text = string.Empty;
            txtBenefNombre.Text = string.Empty;
            txtDetallePago.Text = string.Empty;
            txtInfBcoBco.Text = string.Empty;
            txtMonto.Text = string.Empty;
            txtNroOpe.Text = string.Empty;
            txtObservaciones.Text = string.Empty;
            txtOrdNom.Text = string.Empty;
            txtSupervisor.Text = string.Empty;
            cboBenefCuenta.SelectedIndex = 0;
            cboMoneda.SelectedIndex = 0;
            cboOrdCuenta.SelectedIndex = 0;
            cboTipoCargo.SelectedIndex = 0;
        }

        public void grabarcuentaAfectadas()
        {
            blGestionarTransferencia = new FacadeGestionarTransferencia_Imp();
          
                        string nro = dgvTransfModif.GetRowValues(dgvTransfModif.FocusedRowIndex, "nroOperacion").ToString();
                        double montod = Convert.ToDouble(dgvTransfModif.GetRowValues(dgvTransfModif.FocusedRowIndex, "monto"));
                        string monedad = dgvTransfModif.GetRowValues(dgvTransfModif.FocusedRowIndex, "moneda").ToString();
                        string codigoCorresponsal = dgvTransfModif.GetRowValues(dgvTransfModif.FocusedRowIndex, "codigoCorresponsal").ToString();
                        string cliente = Convert.ToString(dgvTransfModif.GetRowValues(dgvTransfModif.FocusedRowIndex, "idcCliente"));
                        List<TB_Cuenta_Cliente> listaCuentaCliente = new List<TB_Cuenta_Cliente>();
                        listaCuentaCliente = blGestionarTransferencia.listaClientexID(cliente);
                        //; listaCuentaCliente[0].nroCuenta.ToString()
                        string nrocuenta = listaCuentaCliente[0].nroCuenta.ToString();
                        TB_CuentasAfectadas cuenta = new TB_CuentasAfectadas();
                        blActualizarTransferencia = new FacadeActualizarTransferencia();
                        List<TB_Corresponsal> ListarCuentaAbono = new List<TB_Corresponsal>();
                        ListarCuentaAbono = blActualizarTransferencia.ListarCuentaAbono(codigoCorresponsal);

                        List<TB_Cuenta_Cliente> ListarTipoMonedaCuenta = new List<TB_Cuenta_Cliente>();
                        ListarTipoMonedaCuenta = blActualizarTransferencia.ListarCuentaCliente(nrocuenta);

                        string monedacuenta = ListarTipoMonedaCuenta[0].TipoMoneda;
                        decimal saldo = Convert.ToDecimal(ListarTipoMonedaCuenta[0].saldoCuenta);
                        double tipocambio = 1;
                        double montoenviar = Convert.ToDouble(montod);
                        double montocomsision = 0;

                        if (montoenviar >= 0 && montoenviar <= 1000)
                        {
                            montocomsision = 18;
                        }

                        if (montoenviar >= 1001.00 && montoenviar <= 2500)
                        {
                            montocomsision = 25;
                        }

                        if (montoenviar >= 2501.00 && montoenviar <= 5000)
                        {
                            montocomsision = 35;
                        }

                        if (montoenviar >= 5001.00 && montoenviar <= 10000)
                        {
                            montocomsision = 70;
                        }

                        if (montoenviar >= 10001.00 && montoenviar <= 20000)
                        {
                            montocomsision = 120;
                        }
                        if (montoenviar >= 20001)
                        {
                            montocomsision = 150;
                        }

                        if (cboMonedaM.Text.Trim().ToUpper() == "USD")
                        {
                            if (monedacuenta == "USD")
                            {
                                tipocambio = 1.0000;
                            }
                            if (monedacuenta == "PEN")
                            {
                                tipocambio = 2.7500;
                            }
                        }
                        if (cboMonedaM.Text.Trim().ToUpper() == "EUR")
                        {
                            if (monedacuenta == "PEN")
                            {
                                tipocambio = 3.7529;
                            }
                        }

                        cuenta.nroOperacion = nro;
                        cuenta.moneda = monedad;
                        cuenta.ctaAbono = ListarCuentaAbono[0].ctaAbono;
                        cuenta.montoAbono = Convert.ToDecimal(montod);
                        cuenta.ctaComision = "522208000001";
                        cuenta.montoComision = Convert.ToDecimal(montocomsision);
                        cuenta.ctaDebito = nrocuenta;
                        cuenta.montoDebito = Convert.ToDecimal((montoenviar + montocomsision) * tipocambio);
                        cuenta.montoTRF = Convert.ToDecimal(montoenviar + montocomsision);
                        cuenta.tipoCambio = Convert.ToDecimal(tipocambio);
                        decimal saldofinal = 0;
                        saldofinal = saldo - Convert.ToDecimal((montoenviar + montocomsision) * tipocambio);
                        if (blActualizarTransferencia.InsertarCuentas(cuenta))
                        {
                            blActualizarTransferencia.ActualizarSaldoCliente(nrocuenta, saldofinal);
                        }
        

        }

        void actualizarTransaccion()
        {
            string resul = "";
            blGestionarTransferencia = new FacadeGestionarTransferencia_Imp();
            string idCliente = Convert.ToString(dgvTransfModif.GetRowValues(dgvTransfModif.FocusedRowIndex, "idcCliente"));
            string monto = Convert.ToString(dgvTransfModif.GetRowValues(dgvTransfModif.FocusedRowIndex, "monto"));
            
            string nroOperacionAutorizar = "";
            //resul = this.getOFACDuplicado(txtNroOpe.Text, txtDetallePago.Text, idCliente);
            try
            {
                if (Convert.ToDecimal(monto) <= 10000)
                {
                    
                        TB_Transferencia objTransaccion = new TB_Transferencia();
                        objTransaccion.nroOperacion = txtNroOpe.Text;
                        objTransaccion.codigoBcoDestino = txtBcoDestino.Text;
                        objTransaccion.fecCreacion = System.DateTime.Now;
                        objTransaccion.fecValor = dtpFechaValor.Date;
                        objTransaccion.moneda = (string)cboMoneda.Value;
                        objTransaccion.monto = Convert.ToDecimal(txtMonto.Text);
                        objTransaccion.idcCliente = idCliente;
                        objTransaccion.codBcoIntermediario = txtBcoIntermediario.Text == string.Empty ? null : txtBcoIntermediario.Text;
                        objTransaccion.codBcoIntermediario1 = txtBcoIntermediario1.Text == string.Empty ? null : txtBcoIntermediario1.Text;
                        //objTransaccion.codBcoIntermediario2 = txtBcoIntermediario2.Text == string.Empty ? null : txtBcoIntermediario2.Text;
                        objTransaccion.detallePago = txtDetallePago.Text == string.Empty ? null : txtDetallePago.Text;
                        objTransaccion.infBcoBco = txtInfBcoBco.Text == string.Empty ? null : txtInfBcoBco.Text;
                        objTransaccion.observaciones = txtObservaciones.Text == string.Empty ? null : txtObservaciones.Text;
                         objTransaccion.estado = "AUTORIZADA";
                        objTransaccion.comisiones = null;
                        objTransaccion.textoDuplicidad = "";
                        objTransaccion.codigoCorresponsal = txtBcoCorresp.Text;
                        objTransaccion.codigoOFAC = null;
                        objTransaccion.matriculaOperador = idresponsable;
                        objTransaccion.tipoCargo = (string)cboTipoCargo.Value;
                        objTransaccion.matriculaSupervisor = txtSupervisor.Text;
                        objTransaccion.cuentaBeneficiario = (string)cboBenefCuenta.Value;
                        objTransaccion.matriculaSupervisor = (string)Session["idSupervisor"];

                        if (blGestionarTransferencia.modificar(objTransaccion))
                        {
                                string titulo = "Mensaje";
                                string mensaje = "Se autorizó la transacción correctamente y se generó su trama correspondiente.";
                                //string mensaje = "Se verifico la transacción correspondiente.";
                                this.MostrarComentario(popupOK, lblmensOk, mensaje, titulo);
                                this.generarTrama(txtNroOpe.Text);
                                this.grabarcuentaAfectadas();
                        }
                        else
                        {
                            string titulo = "Mensaje";
                            string mensaje = "Error al actualizar la transacción..";
                            this.MostrarComentario(popupOK, lblmensOk, mensaje, titulo);
                        }
                    
                }
                else
                {
                    
                        TB_Transferencia objTransaccion = new TB_Transferencia();
                        objTransaccion.nroOperacion = txtNroOpe.Text;
                        nroOperacionAutorizar = objTransaccion.nroOperacion;
                        objTransaccion.codigoBcoDestino = txtBcoDestino.Text;
                        objTransaccion.fecCreacion = System.DateTime.Now;
                        objTransaccion.fecValor = dtpFechaValor.Date;
                        objTransaccion.moneda = (string)cboMoneda.Value;
                        objTransaccion.monto = Convert.ToDecimal(txtMonto.Text);
                        objTransaccion.idcCliente = idCliente;
                        objTransaccion.codBcoIntermediario = txtBcoIntermediario.Text == string.Empty ? null : txtBcoIntermediario.Text;
                        objTransaccion.codBcoIntermediario1 = txtBcoIntermediario1.Text == string.Empty ? null : txtBcoIntermediario1.Text;
                        //objTransaccion.codBcoIntermediario2 = txtBcoIntermediario2.Text == string.Empty ? null : txtBcoIntermediario2.Text;
                        objTransaccion.detallePago = txtDetallePago.Text == string.Empty ? null : txtDetallePago.Text;
                        objTransaccion.infBcoBco = txtInfBcoBco.Text == string.Empty ? null : txtInfBcoBco.Text;
                        objTransaccion.observaciones = txtObservaciones.Text == string.Empty ? null : txtObservaciones.Text;
                        objTransaccion.estado = "VERIFICADA";
                        objTransaccion.comisiones = null;
                        objTransaccion.textoDuplicidad = "";
                        objTransaccion.codigoCorresponsal = txtBcoCorresp.Text;
                        objTransaccion.codigoOFAC = null;
                        objTransaccion.matriculaOperador = idresponsable;
                        objTransaccion.tipoCargo = (string)cboTipoCargo.Value;
                        objTransaccion.matriculaSupervisor = txtSupervisor.Text;
                        objTransaccion.cuentaBeneficiario = (string)cboBenefCuenta.Value;
                        objTransaccion.matriculaSupervisor = (string)Session["idSupervisor"];

                        if (blGestionarTransferencia.modificar(objTransaccion))
                        {
                            string titulo = "Mensaje";
                            string mensaje = "La transaccion " + nroOperacionAutorizar + " supera el monto mínimo, el supervisor debe verificar la transacción";
                            this.MostrarComentario(popupOK, lblmensOk, mensaje, titulo);
                        }
                    }
                
                this.limpiarcontroles();
            }
            catch (Exception ex)
            {
                popupOK.HeaderText = "Error al verificar Transacción";
                popupOK.ShowOnPageLoad = true;
                lblmensOk.Text = ex.Message;
            }
        }

        private void MostrarComentario(ASPxPopupControl strPopup, ASPxLabel strLabel, String strMsg)
        {
            CargarAlert(strPopup, strLabel, strMsg, "Mensaje");
        }

        private void MostrarComentario(ASPxPopupControl strPopup, ASPxLabel strLabel, String strMsg, String strTitulo)
        {
            CargarAlert(strPopup, strLabel, strMsg, strTitulo);
        }

        private void CargarAlert(ASPxPopupControl strPopup, ASPxLabel strLabel, String strMsg, String strTitulo)
        {
            strPopup.HeaderText = strTitulo;
            strLabel.Text = strMsg;
            strPopup.ShowOnPageLoad = true;
        }

        protected void btnVerificar_Click(object sender, EventArgs e)
        {
            DateTime fecha=(DateTime)Session["fecha"];
            if (Convert.ToDateTime(fecha)>dtpFechaValor.Date)
            {
                string titulo = "Mensaje";
                string mensaje = "La fecha modificada no debe ser menor a " + fecha.ToLongDateString();
                this.MostrarComentario(popupOK, lblmensOk, mensaje, titulo);
                return;
            }

            blGestionarTransferencia = new FacadeGestionarTransferencia_Imp();
            this.MostrarComentario(popupConfirmacionT, lblmenConfir, "Está seguro de verificar la transacción.");

            idopcion = "V";
        }

        protected void btnAutorizar_Click(object sender, EventArgs e)
        {

            this.MostrarComentario(popupConfirmacionT, lblmenConfir, "Está seguro de autorizar la(s) transaccion(es).");
            idopcion = "A";
        }

        void  getOFAC(string codigo,string detalle)
        {
            blGestionarTransferencia = new FacadeGestionarTransferencia_Imp();
            List<OFA_EN> lista;
            
            string output=null;
           
                List<String> list = detalle.Split(' ').ToList();

                foreach (String s in list)
                {
                    if (s == "SAC" || s == "EIRL" || s == "LA" || s.ToUpper() == "del".ToUpper() || s == "LTDA." || s == "LTDA" || s==string.Empty)
                    {
                    }
                    else
                    {
                        lista = new List<OFA_EN>();

                        lista = blGestionarTransferencia.ListarOFac(s);
                        if (lista.Count != 0)
                        {
                            if (lista[0].codigoOFAC != null)
                            {
                                output = lista[0].codigoOFAC;
                            }

                            if (output != null || output == string.Empty)
                            {
                                blGestionarTransferencia.actualizarEstado(codigo, "OFAC", output);
                                lblmensOk.Text = "La transaccion " + codigo + " esta dentro de la lista OFAC.";
                                popupOK.HeaderText = "Lista OFAC";
                                popupOK.ShowOnPageLoad = true;
                                this.listarGrilla();
                                this.cargarGrilla();
                                this.cargarGrillaModificar();
                                return;
                            }
                        }
                    }

                }
                   
                        List<ListaTransferenciasDuplicadas> listaDuplicados = new List<ListaTransferenciasDuplicadas>();
                        int count = 0;

                        listaDuplicados = (List<ListaTransferenciasDuplicadas>)blGestionarTransferencia.ListarTransferenciasDuplicadas();

                        if (codigo != string.Empty)
                        {
                            for (int i = 0; i < listaDuplicados.Count; i++)
                            {
                                //listaDuplicados[i].NROOPERACION1="";

                                if (listaDuplicados[i].NROOPERACION1 != null)
                                {
                                    if (listaDuplicados[i].NROOPERACION1 == codigo)
                                    {
                                        count += 1;
                                    }
                                }


                            }
                        }
                            if (count != 0)
                            {
                                blGestionarTransferencia.actualizarEstado(codigo, "DUPLICADO", null);
                                lblmensOk.Text = "La transaccion " + codigo + " esta dentro de la lista de Transacciones duplicadas.";
                                popupOK.HeaderText = "Lista Duplicadas";
                                popupOK.ShowOnPageLoad = true;
                                this.listarGrilla();
                                this.cargarGrilla();
                                this.cargarGrillaModificar();
                                return;
                            }

                            //lblmenConfir0.Text = "Desea autorizar la transacción nro " + codigo;
                            //popupTrama.HeaderText = "Confirmar";
                            //popupTrama.ShowOnPageLoad = true;
                            //Session["codTrama"] = codigo;
                           
                      

                    

                
                this.listarGrilla();
                this.cargarGrilla();
                this.cargarGrillaModificar();

          
        }

        private string getOFACDuplicado(string codigo,string detalle,string idccliente)
        {
            string resultado = "";
            blGestionarTransferencia = new FacadeGestionarTransferencia_Imp();
            List<OFA_EN> lista;

            string output = null;

            List<String> list = detalle.Split(' ').ToList();

            foreach (String s in list)
            {
                if (s == "SAC" || s == "EIRL" || s == "LA" || s.ToUpper() == "del".ToUpper() || s == "LTDA." || s == "LTDA" || s == string.Empty)
                {
                }
                else
                {
                    lista = new List<OFA_EN>();

                    lista = blGestionarTransferencia.ListarOFac(s);
                    if (lista.Count != 0)
                    {
                        if (lista[0].codigoOFAC != null)
                        {
                            output = lista[0].codigoOFAC;
                        }

                        if (output != null || output == string.Empty)
                        {
                            blGestionarTransferencia.actualizarEstado(codigo, "OFAC", output);
                            resultado = "O";
                            TB_Transferencia objTransaccion = new TB_Transferencia();
                            objTransaccion.nroOperacion = txtNroOpe.Text;
                            objTransaccion.codigoBcoDestino = txtBcoDestino.Text;
                            objTransaccion.fecCreacion = System.DateTime.Now;
                            objTransaccion.fecValor = dtpFechaValor.Date;
                            objTransaccion.moneda = (string)cboMoneda.Value;
                            objTransaccion.monto = Convert.ToDecimal(txtMonto.Text);
                            objTransaccion.idcCliente = idccliente;
                            objTransaccion.codBcoIntermediario = txtBcoIntermediario.Text == string.Empty ? null : txtBcoIntermediario.Text;
                            objTransaccion.codBcoIntermediario1 = txtBcoIntermediario1.Text == string.Empty ? null : txtBcoIntermediario1.Text;
                            //objTransaccion.codBcoIntermediario2 = txtBcoIntermediario2.Text == string.Empty ? null : txtBcoIntermediario2.Text;
                            objTransaccion.detallePago = txtDetallePago.Text == string.Empty ? null : txtDetallePago.Text;
                            objTransaccion.infBcoBco = txtInfBcoBco.Text == string.Empty ? null : txtInfBcoBco.Text;
                            objTransaccion.observaciones = txtObservaciones.Text == string.Empty ? null : txtObservaciones.Text;
                            objTransaccion.estado = "OFAC";
                            objTransaccion.comisiones = null;
                            objTransaccion.textoDuplicidad = "";
                            objTransaccion.codigoCorresponsal = txtBcoCorresp.Text;
                            objTransaccion.codigoOFAC = output;
                            objTransaccion.matriculaOperador = idresponsable;
                            objTransaccion.tipoCargo = (string)cboTipoCargo.Value;
                            objTransaccion.matriculaSupervisor = txtSupervisor.Text;
                            objTransaccion.cuentaBeneficiario = (string)cboBenefCuenta.Value;
                            objTransaccion.matriculaSupervisor = (string)Session["idSupervisor"];

                            blGestionarTransferencia.modificar(objTransaccion) ;
                            this.listarGrilla();
                            this.cargarGrilla();
                            this.cargarGrillaModificar();
                            resultado = "O";
                            break;
                        }
                       
                    }
                }


            
            }
            if (resultado!="O")
            {
                List<ListaTransferenciasDuplicadas> listaDuplicados = new List<ListaTransferenciasDuplicadas>();
                int count = 0;

                listaDuplicados = (List<ListaTransferenciasDuplicadas>)blGestionarTransferencia.ListarTransferenciasDuplicadas();

                if (codigo != string.Empty)
                {
                    for (int i = 0; i < listaDuplicados.Count; i++)
                    {
                        //listaDuplicados[i].NROOPERACION1="";

                        if (listaDuplicados[i].NROOPERACION1 != null)
                        {
                            if (listaDuplicados[i].NROOPERACION1 == codigo)
                            {
                                count += 1;
                                break;
                            }
                        }


                    }
                }
                if (count != 0)
                {
                    //blGestionarTransferencia.actualizarEstado(codigo, "DUPLICADO", null);
                    //lblmensOk.Text = "La transaccion " + codigo + " esta dentro de la lista de Transacciones duplicadas.";
                    //popupOK.HeaderText = "Lista Duplicadas";
                    //popupOK.ShowOnPageLoad = true;

                    resultado = "D";
                }

                //lblmenConfir0.Text = "Desea autorizar la transacción nro " + codigo;
                //popupTrama.HeaderText = "Confirmar";
                //popupTrama.ShowOnPageLoad = true;
                //Session["codTrama"] = codigo;
                
            }

            return resultado;
        }
        int getDuplicados(string codigo)
        {
            blGestionarTransferencia = new FacadeGestionarTransferencia_Imp();
            List<ListaTransferenciasDuplicadas> listaDuplicados = new List<ListaTransferenciasDuplicadas>();
              int count = 0;
            
                listaDuplicados = (List<ListaTransferenciasDuplicadas>)blGestionarTransferencia.ListarTransferenciasDuplicadas();
                
                if (codigo!=string.Empty)
                {
                    for (int i = 0; i < listaDuplicados.Count; i++)
                    {
                        //listaDuplicados[i].NROOPERACION1="";

                        if (listaDuplicados[i].NROOPERACION1 == codigo)
                        {
                            count += 1;
                        }

                    }
                }
                
            return count;
        }

        void generarTrama1(string codigo)
        {
            blGestionarTransferencia = new FacadeGestionarTransferencia_Imp();
            string ruta = Server.MapPath(ConfigurationManager.AppSettings["RutaDat"]);
            List<Globales.lista_TransferenciaReponsable> lista = new List<Globales.lista_TransferenciaReponsable>();
            string a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s; 
            int dat= 10000;
            int count = 0;

            string rutapdf = Server.MapPath(ConfigurationManager.AppSettings["RutaDat"] + codigo + ".dat");
            if (File.Exists(rutapdf))
            {
                //File.Delete(rutapdf);
                //vArchivo.CopyTo(rutapdf);
            }
            else
            {
                //vArchivo.CopyTo(rutapdf);
            }
            try
            {
                lista = (List<Globales.lista_TransferenciaReponsable>)blGestionarTransferencia.listarTransferenciaEstado(codigo);
                string path = ruta + codigo + ".dat";
                System.IO.StreamWriter sw = new System.IO.StreamWriter(path);

               if (!File.Exists(path))
                {
                    using (sw = File.CreateText(path))
                    {
                        sw.WriteLine("------LISTA DE ERRORES------------ \n");
                    }
                }
               else
               {
                   //using (StreamWriter sw = File.CreateText(path))
                   //{
                   //    sw.WriteLine("------LISTA DE ERRORES------------ \n");
                   //}

                   string src;
                   dat = dat + 1;
                   path = ruta + "H"+codigo + ".dat";
               }
                
                a="{1:F01BCPLPEPLAXXX0000000000}{2:I103"+lista[0].codigoCorresponsal+"XXXXN}{4:\n";
                b=":20:@nrooperacionexterior@\n";
                c=":23B:CRED\n";
                d=":32A:"+lista[0].fecCreacion.Day+lista[0].fecCreacion.Month+lista[0].fecCreacion.Year+""+lista[0].moneda+""+lista[0].monto+"\n";
                e=":50F:/"+lista[0].cuentaBeneficiario+"\n";
                f="1/"+lista[0].nomCliente;
                g="2/"+lista[0].dirCliente;
                h="3/PE/SURCO LIMA";
                    List<TB_Cuenta_Cliente> cliente=new List<TB_Cuenta_Cliente>();
                cliente=blGestionarTransferencia.listaClientexID(lista[0].idcCliente);
                i=":53D:/"+cliente[0].nroCuenta;
                j=":53D:/"+lista[0].codigoCorresponsal;

                List<TB_BcoDestino> banco=new List<TB_BcoDestino>();
                IFacadeSolicitarTrasnferencia blSolicitarTransgferencia=new FacadeSolicitarTransferencia_Imp();
                banco=blSolicitarTransgferencia.getCodigoCorresponsal(lista[0].codigoBcoDestino);
                k=banco[0].nombreBcoDestibo;
                m=banco[0].ciudadBcoDestino+","+banco[0].paisBcoDestino;
                n=":57A:"+lista[0].codigoBcoDestino;
                o=":59:/"+lista[0].cuentaBeneficiario;
                p=""+lista[0].nomBeneficiario;
                q=""+lista[0].dirBeneficiario;
                r=":71A:"+lista[0].tipoCargo;
                s = "-}";

                using (StreamWriter writer = new StreamWriter(
                new FileStream(path, FileMode.Append, FileAccess.Write, FileShare.ReadWrite)))
                {
                    
                    writer.WriteLine(a); 
                    writer.WriteLine(b);
                    writer.WriteLine(c);
                    writer.WriteLine(d);
                    writer.WriteLine(e);
                    writer.WriteLine(f);
                    writer.WriteLine(g);
                    writer.WriteLine(h);
                    writer.WriteLine(i);
                    writer.WriteLine(j);
                    writer.WriteLine(k);
                    writer.WriteLine(m);
                    writer.WriteLine(n);
                    writer.WriteLine(o);
                    writer.WriteLine(p);
                    writer.WriteLine(q);
                    writer.WriteLine(r);
                    writer.WriteLine(s);
                    
                    writer.Flush();
                    writer.Close();
                }

                blGestionarTransferencia.actualizarEstado(codigo, "AUTORIZADA", null);
            }
            catch (Exception ex)
            {
                string titulo = "Error al generar la trama";
                string mensaje = ex.Message;
                this.MostrarComentario(popupOK, lblmensOk, mensaje, titulo);
            }
        }

        void generarTrama(string codigo)
        {
            blGestionarTransferencia = new FacadeGestionarTransferencia_Imp();
            string ruta = Server.MapPath(ConfigurationManager.AppSettings["RutaDat"]);
            List<Globales.lista_TransferenciaReponsable> lista = new List<Globales.lista_TransferenciaReponsable>();
            string a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s;
            int dat = 10000;
            int count = 0;
            try
            {
                lista = (List<Globales.lista_TransferenciaReponsable>)blGestionarTransferencia.listarTransferenciaEstado(codigo);
                string rutadat = Server.MapPath(ConfigurationManager.AppSettings["RutaDat"]);
                //string path = ruta + codigo + ".dat";
                string Filess = rutadat + "\\" + codigo + ".dat";


                a = "{1:F01BCPLPEPLAXXX0000000000}{2:I103" + lista[0].codigoCorresponsal + "XXXXN}{4:\n";
                b = ":20:"+lista[0].nroOperacion;
                c = ":23B:CRED\n";
                d = ":32A:" + lista[0].fecValor.ToString("yyyyMMdd").Substring(2,6) + "" + lista[0].moneda.ToString() + "" + lista[0].monto.ToString().Replace(".", ",") + "\n";
                List<TB_Cuenta_Cliente> cliente = new List<TB_Cuenta_Cliente>();
                cliente = blGestionarTransferencia.listaClientexID(lista[0].idcCliente);
                e = ":50F:/" + cliente[0].nroCuenta.ToString().Replace("-","") + "\n";
                f = "1/" + lista[0].nomCliente;
                g = "2/" + lista[0].dirCliente;
                h = "3/PE/SURCO LIMA";
                List<TB_Corresponsal> listacorresponsal = new List<TB_Corresponsal>();
                listacorresponsal=blGestionarTransferencia.listarCorrespansalxID(lista[0].codigoCorresponsal);
                j = ":53D:/" +listacorresponsal[0].ctaBanqueroCorresponsal;
                List<TB_BcoDestino> banco = new List<TB_BcoDestino>();
                IFacadeSolicitarTrasnferencia blSolicitarTransgferencia = new FacadeSolicitarTransferencia_Imp();
                banco = blSolicitarTransgferencia.getCodigoCorresponsal(lista[0].codigoBcoDestino);
                k = banco[0].nombreBcoDestibo;
                m = banco[0].ciudadBcoDestino + "," + banco[0].paisBcoDestino;
                n = ":57A:" + lista[0].codigoBcoDestino;
                o = ":59:/" + lista[0].cuentaBeneficiario;
                p = "" + lista[0].nomBeneficiario;
                q = "" + lista[0].dirBeneficiario;
                r = ":71A:" + lista[0].tipoCargo;
                s = "-}";
                using (FileStream fs = new FileStream(Filess, FileMode.Create, FileAccess.ReadWrite))
                {
                    fs.Close();
                }
                using (StreamWriter sw = new StreamWriter(Filess))
                {
                    sw.WriteLine(a);
                    sw.WriteLine(b);
                    sw.WriteLine(c);
                    sw.WriteLine(d);
                    sw.WriteLine(e);
                    sw.WriteLine(f);
                    sw.WriteLine(g);
                    sw.WriteLine(h);
                   // sw.WriteLine(i);
                    sw.WriteLine(j);
                    sw.WriteLine(k);
                    sw.WriteLine(m);
                    sw.WriteLine(n);
                    sw.WriteLine(o);
                    sw.WriteLine(p);
                    sw.WriteLine(q);
                    sw.WriteLine(r);
                    sw.WriteLine(s);
                    sw.Flush();
                    sw.Close();
                }
                //using (StreamWriter writer = new StreamWriter(
                //new FileStream(Filess, FileMode.Append, FileAccess.Write, FileShare.ReadWrite)))
                //{
                //    //writer.WriteLine(string.Format("{0} | {1} | {2} | {3}", DateTime.Now, e.Source, e.Message, e.InnerException));
                //    writer.WriteLine(a);

                //    writer.Flush();
                //    writer.Close();
                //}

                blGestionarTransferencia.actualizarEstado(codigo, "AUTORIZADA", null);
            }
            catch (Exception)
            {
            }
        }                      
        void ActualizarEstadoTransc()
        {
            blSolicitarTransferencia = new FacadeSolicitarTransferencia_Imp();
            try
            {
                for (int i = 0; i < dgvTransfAutorizar.VisibleRowCount; i++)
                {
                    //ASPxCheckBox chk = (ASPxCheckBox)dgvTransfAutorizar.FindRowCellTemplateControl(i, dgvTransfAutorizar.Columns[5] as GridViewDataColumn, "chkestado");
                    ASPxCheckBox chk = (ASPxCheckBox)dgvTransfAutorizar.FindRowCellTemplateControl(i, null, "chkestado");
                    string nroOperacion = dgvTransfAutorizar.GetRowValues(i, "nroOperacion").ToString();
                                    }
            }
            catch (Exception)
            {
            }
        }

        void listarGrilla()
        {
            blGestionarTransferencia = new FacadeGestionarTransferencia_Imp();
            try
            {
                dgvTransfAutorizar.DataSource = blGestionarTransferencia.FiltroResponsableAutorizar(idresponsable);
                dgvTransfAutorizar.DataBind();
            }
            catch (Exception)
            {
                string titulo = "Listando la grilla Transferencia - Autorizar";
                string mensaje = "Error al cargar grilla";
                this.MostrarComentario(popupOK,lblmensOk,mensaje,titulo);
            }
        }

        protected void dgvTransfAutorizar_AfterPerformCallback(object sender, ASPxGridViewAfterPerformCallbackEventArgs e)
        {
            this.listarGrilla();
        }

        protected void dgvTransfAutorizar_FocusedRowChanged(object sender, EventArgs e)
        {

        }
        private bool validarCodigoSwift(string codigo)
        {
            blSolicitarTransferencia = new FacadeSolicitarTransferencia_Imp();
            
            try
            {

                if (codigo == string.Empty)
                {
                    return true;

                }
                else
                {
                    List<TB_BcoDestino> listaBanco = new List<TB_BcoDestino>();

                    listaBanco = blSolicitarTransferencia.getCodigoCorresponsal(codigo);
                    if (listaBanco.Count == 0)
                    {
                        string msg = "Código Swift Incorrecto";
                        string titulo = "Mensaje";
                        popupOK.HeaderText = "Validación";
                        popupOK.ShowOnPageLoad = true;
                        lblmensOk.Text = msg;
                        return false;
                    }
                    else
                    {
                        return true;
                    }

                }
            }
            catch (Exception ex)
            {

                popupOK.HeaderText = "Mensaje";
                popupOK.ShowOnPageLoad = true;
                lblmensOk.Text = "Error al validar código Swift";
                return false;
            }
        }
        protected void btnAceptar_Click(object sender, EventArgs e)
        {
            blGestionarTransferencia = new FacadeGestionarTransferencia_Imp();
                if (idopcion == "V")
                {
                    
                    if (!this.validarCodigoSwift(txtBcoIntermediario.Text))
                    {
                        lblmensOk.Text = "El código de Banco Intermediario no es correcto.";
                        popupOK.HeaderText = "Mensaje";
                        popupOK.ShowOnPageLoad = true;
                        return;
                    }
                    if (!this.validarCodigoSwift(txtBcoDestino.Text))
                    {
                        lblmensOk.Text = "El código de Banco Destino no es correcto.";
                        popupOK.HeaderText = "Mensaje";
                        popupOK.ShowOnPageLoad = true;
                        return;
                    }
                    this.actualizarTransaccion();
            //        string operacion = Convert.ToString(dgvTransfModif.GetRowValues(dgvTransfModif.FocusedRowIndex, "nroOperacion"));
            //        string detalle = Convert.ToString(dgvTransfModif.GetRowValues(dgvTransfModif.FocusedRowIndex, "detallePago"));
            //        if (operacion != string.Empty || detalle != string.Empty)
            //        {
            //            decimal monto = Convert.ToDecimal(dgvTransfModif.GetRowValues(dgvTransfModif.FocusedRowIndex, "monto"));
            //            if (monto <= 10000)
            //            {
            //                this.getOFAC(operacion, detalle);
                          
            //                //blGestionarTransferencia.actualizarEstado(operacion, "VERIFICADA", null);
            //            }
            //            else
            //            {

            //                blGestionarTransferencia.actualizarEstado(operacion, "VERIFICADA", null);
            //                //lblmensOk.Text = "El monto excede el valor mínimo para verificar la transacción, el supervisor de autorizar la transacción.";
            //                //popupOK.HeaderText = "Mensaje";
            //                //popupOK.ShowOnPageLoad = true;

            //            }
                        
            //        }
            //        else
            //        {
            //            lblmensOk.Text = "Seleccione un registro de la grilla";
            //            popupOK.HeaderText = "Mensaje";
            //popupOK.ShowOnPageLoad = true;
            //        }
                    
                    
                }
                else if (idopcion == "A")
                {
 string nrooperacion = "";
                    for (int i = 0; i < dgvTransfAutorizar.VisibleRowCount; i++)
                    {
                        ASPxCheckBox chk = (ASPxCheckBox)dgvTransfAutorizar.FindRowCellTemplateControl(i, null, "chEstado");
                        if (chk.Checked)
                        {
                            string estado = dgvTransfAutorizar.GetRowValues(i, "estado").ToString();
                            if (estado=="OFAC" || estado=="DUPLICADO")
                            {
                                
                            }else{
                            nrooperacion += dgvTransfAutorizar.GetRowValues(i, "nroOperacion").ToString() +", ";
                            //this.getOFAC(dgvTransfAutorizar.GetRowValues(i, "nroOperacion").ToString(), Convert.ToString(dgvTransfAutorizar.GetRowValues(i, "detallePago")));
                            this.generarTrama(dgvTransfAutorizar.GetRowValues(i, "nroOperacion").ToString());


                            string nro = dgvTransfAutorizar.GetRowValues(i, "nroOperacion").ToString();
                            double montod = Convert.ToDouble(dgvTransfAutorizar.GetRowValues(i, "monto"));
                            string monedad = dgvTransfAutorizar.GetRowValues(i, "moneda").ToString();
                            string codigoCorresponsal = dgvTransfAutorizar.GetRowValues(i, "codigoCorresponsal").ToString();
                            string cliente = Convert.ToString(dgvTransfAutorizar.GetRowValues(i, "idcCliente"));
                        List<TB_Cuenta_Cliente> listaCuentaCliente = new List<TB_Cuenta_Cliente>();
                        listaCuentaCliente = blGestionarTransferencia.listaClientexID(cliente);
                        //; listaCuentaCliente[0].nroCuenta.ToString()
                        string nrocuenta = listaCuentaCliente[0].nroCuenta.ToString();
                        TB_CuentasAfectadas cuenta = new TB_CuentasAfectadas();
                        blActualizarTransferencia = new FacadeActualizarTransferencia();
                        List<TB_Corresponsal> ListarCuentaAbono = new List<TB_Corresponsal>();
                        ListarCuentaAbono = blActualizarTransferencia.ListarCuentaAbono(codigoCorresponsal);

                        List<TB_Cuenta_Cliente> ListarTipoMonedaCuenta = new List<TB_Cuenta_Cliente>();
                        ListarTipoMonedaCuenta = blActualizarTransferencia.ListarCuentaCliente(nrocuenta);

                        string monedacuenta = ListarTipoMonedaCuenta[0].TipoMoneda;
                        decimal saldo = Convert.ToDecimal(ListarTipoMonedaCuenta[0].saldoCuenta);
                        double tipocambio = 1;
                        double montoenviar = Convert.ToDouble(montod);
                        double montocomsision = 0;

                        if (montoenviar >= 0 && montoenviar <= 1000)
                        {
                            montocomsision = 18;
                        }

                        if (montoenviar >= 1001.00 && montoenviar <= 2500)
                        {
                            montocomsision = 25;
                        }

                        if (montoenviar >= 2501.00 && montoenviar <= 5000)
                        {
                            montocomsision = 35;
                        }

                        if (montoenviar >= 5001.00 && montoenviar <= 10000)
                        {
                            montocomsision = 70;
                        }

                        if (montoenviar >= 10001.00 && montoenviar <= 20000)
                        {
                            montocomsision = 120;
                        }
                        if (montoenviar >= 20001)
                        {
                            montocomsision = 150;
                        }

                        if (cboMonedaM.Text.Trim().ToUpper() == "USD")
                        {
                            if (monedacuenta == "USD")
                            {
                                tipocambio = 1.0000;
                            }
                            if (monedacuenta == "PEN")
                            {
                                tipocambio = 2.7500;
                            }
                        }
                        if (cboMonedaM.Text.Trim().ToUpper() == "EUR")
                        {
                            if (monedacuenta == "PEN")
                            {
                                tipocambio = 3.7529;
                            }
                        }

                        cuenta.nroOperacion = nro;
                        cuenta.moneda = monedad;
                        cuenta.ctaAbono = ListarCuentaAbono[0].ctaAbono;
                        cuenta.montoAbono = Convert.ToDecimal(montod);
                        cuenta.ctaComision = "522208000001";
                        cuenta.montoComision = Convert.ToDecimal(montocomsision);
                        cuenta.ctaDebito = nrocuenta;
                        cuenta.montoDebito = Convert.ToDecimal((montoenviar + montocomsision) * tipocambio);
                        cuenta.montoTRF = Convert.ToDecimal(montoenviar + montocomsision);
                        cuenta.tipoCambio = Convert.ToDecimal(tipocambio);
                        decimal saldofinal = 0;
                        saldofinal = saldo - Convert.ToDecimal((montoenviar + montocomsision) * tipocambio);
                        if (blActualizarTransferencia.InsertarCuentas(cuenta))
                        {
                            blActualizarTransferencia.ActualizarSaldoCliente(nrocuenta, saldofinal);
                        }
                     
                    }
                                                  }
                    }
                    if (nrooperacion==string.Empty)
                    {
                        lblmensOk.Text = "No se generó tramas por que las transacciones se encuentran en lista OFAC u Duplicadas.";
                    }else{
                    lblmensOk.Text = "Se generó las tramas correspondientes de las transacciones numero. " + nrooperacion;}
                    popupOK.HeaderText = "Generación de trama";
                    popupOK.ShowOnPageLoad = true;
                }
                else if (idopcion == "M")
                {
                    this.modificarTransaccion();
                }

                this.cargarGrilla();
                this.listarGrilla();
                this.cargarGrillaModificar();
                this.cargarCuentaBeneficiarioModificar();
           
        }

        protected void dgvTransfModif_AfterPerformCallback(object sender, ASPxGridViewAfterPerformCallbackEventArgs e)
        {
            this.cargarGrilla();
        }

        protected void btnCancelar_Click(object sender, EventArgs e)
        {
            Response.Redirect("~/Index.aspx");
        }

        protected void btnAceptarOk_Click(object sender, EventArgs e)
        {
            //if ((Int32)Session["idTab"]==2)
            //{
            //    Response.Redirect("~/Alertas/wfrmAlertas.aspx");
            //}
            //else if ((Int32)Session["idTab"]==1)
            //{
            //    Response.Redirect("~/Alertas/wfrmAlertas.aspx");
            //}
            //else
            //{

            //}
        }

        protected void btnSeleccionar_Click(object sender, EventArgs e)
        {
            blSolicitarTransferencia = new FacadeSolicitarTransferencia_Imp();
            try
            {
                for (int i = 0; i < dgvTransfAutorizar.VisibleRowCount; i++)
                {
                    ASPxCheckBox chk = (ASPxCheckBox)dgvTransfAutorizar.FindRowCellTemplateControl(i, null, "chEstado");

                    //string nroOperacion = dgvTransfAutorizar.GetRowValues(i, "nroOperacion").ToString();
                    chk.Checked = true;

                }
            }
            catch (Exception)
            {
            }
        }

        protected void lnkEditarTransferencia_Click(object sender, EventArgs e)
        {  string idOpcion1 = Convert.ToString(dgvTransfModif.GetRowValues(dgvTransfModif.FocusedRowIndex, "nroOperacion"));
            string idcCliente = Convert.ToString(dgvTransfModif.GetRowValues(dgvTransfModif.FocusedRowIndex, "idcCliente"));
            //popupOK.HeaderText = "Mensaje";
            //popupOK.ShowOnPageLoad = true;
            //lblmensOk.Text = "Editar los campos de la Transacción " + idOpcion1;
            blGestionarTransferencia = new FacadeGestionarTransferencia_Imp();
            List<Globales.lista_TransferenciaReponsable> lista = new List<Globales.lista_TransferenciaReponsable>();
            List<TB_Cuenta_Cliente> listaCuentaCliente = new List<TB_Cuenta_Cliente>();
          
            this.cargarComboCuenta(idcCliente);
            this.cargarComboCuentaBenef(idcCliente);
            if (idOpcion1 != string.Empty)
            {
                lista = blGestionarTransferencia.listaVerificacion(idOpcion1);

                txtMonto.Text = lista[0].monto.ToString();
                txtNroOpe.Text = lista[0].nroOperacion;
                txtSupervisor.Text = lista[0].nomSupervisor;
                txtBcoCorresp.Text = lista[0].codigoCorresponsal;
                listaCuentaCliente = blGestionarTransferencia.listaClientexID(lista[0].idcCliente);
                if (listaCuentaCliente.Count != 0)
                {
                    cboOrdCuenta.Value = listaCuentaCliente[0].nroCuenta;
                }
                txtOrdNom.Text = lista[0].nomCliente;
                txtBcoDestino.Text = lista[0].codigoBcoDestino;
                cboBenefCuenta.Value = lista[0].cuentaBeneficiario;
                txtBenefNombre.Text = lista[0].nomBeneficiario;
                txtBenefDireccion.Text = lista[0].dirBeneficiario;
                cboTipoCargo.Value = lista[0].tipoCargo;
                txtDetallePago.Text = lista[0].detallePago;
                txtInfBcoBco.Text = lista[0].infBcoBco;
                txtObservaciones.Text = lista[0].observaciones;
                dtpFechaValor.Date = lista[0].fecValor;
                Session["fecha"] = dtpFechaValor.Date;
                txtBcoIntermediario.Text = lista[0].codBcoIntermediario;
                txtBcoIntermediario.Text = lista[0].codBcoIntermediario;
                txtBcoIntermediario1.Text = lista[0].codBcoIntermediario1 == null ? "" : lista[0].codBcoIntermediario1;
                txtBcoIntermediario2.Text = lista[0].codBcoIntermediario2 == null ? "" : lista[0].codBcoIntermediario2;
                cboMoneda.Value = lista[0].moneda;
                Session["idSupervisor"] = lista[0].matriculaSupervisor;
            }
            popupOK.HeaderText = "Mensaje";
            popupOK.ShowOnPageLoad = true;
            lblmensOk.Text = "Editar los campos de la Transacción " + idOpcion1;
        }

        protected void grdMoficarTransferencia_AfterPerformCallback(object sender, ASPxGridViewAfterPerformCallbackEventArgs e)
        {

        }

        protected void grdMoficarTransferencia_FocusedRowChanged(object sender, EventArgs e)
        {

            blGestionarTransferencia = new FacadeGestionarTransferencia_Imp();
            List<Globales.lista_TransferenciaReponsable> lista = new List<Globales.lista_TransferenciaReponsable>();
            List<TB_Cuenta_Cliente> listaCuentaCliente = new List<TB_Cuenta_Cliente>();
            string idOpcion1 = Convert.ToString(grdMoficarTransferencia.GetRowValues(grdMoficarTransferencia.FocusedRowIndex, "nroOperacion"));
            this.cargarCuentaModificar();
            this.cargarCuentaBeneficiarioModificar();
            if (idOpcion1 != string.Empty)
            {
                lista = blGestionarTransferencia.listaVerificacion(idOpcion1);
                if (lista.Count==0)
                {
                    return;
                }
                txtMontoM.Text = lista[0].monto.ToString();
                txtNrooperracionM.Text = lista[0].nroOperacion;
                txtSupervisorM.Text = lista[0].nomSupervisor;
                txtBancoCorresponsalM.Text = lista[0].codigoCorresponsal;
                listaCuentaCliente = blGestionarTransferencia.listaClientexID(lista[0].idcCliente);
                if (listaCuentaCliente.Count != 0)
                {
                    cboCuentaM.Value = listaCuentaCliente[0].nroCuenta;
                }
                TxtNombreOrdM.Text = lista[0].nomCliente;
                txtBancoDesM.Text = lista[0].codigoBcoDestino;
                cboCuentaBenefM.Value = lista[0].cuentaBeneficiario;
                txtNombresBenM.Text = lista[0].nomBeneficiario;
                txtDireccionM.Text = lista[0].dirBeneficiario;
                cboTipoCM.Value = lista[0].tipoCargo;
                txtDetalleM.Text = lista[0].detallePago;
                txtINFBCOBCOM.Text = lista[0].infBcoBco;
                txtObservacionesM.Text = lista[0].observaciones;
                dteFechaValorM.Date = lista[0].fecValor;
                Session["fechaM"] = dteFechaValorM.Date;
                Session["fechaCreacionM"] = lista[0].fecCreacion;
                txtBcoIntermediario.Text = lista[0].codBcoIntermediario==null?"":lista[0].codBcoIntermediario;
                txtBancoIter1M.Text = lista[0].codBcoIntermediario == null ? "" : lista[0].codBcoIntermediario;
                txtBancoIter2M.Text = lista[0].codBcoIntermediario1 == null ? "" : lista[0].codBcoIntermediario1;
                cboMonedaM.Value = lista[0].moneda;
                Session["idSupervisorM"] = lista[0].matriculaSupervisor;
            }
         
        }

        protected void btnModificar_Click(object sender, EventArgs e)
        {string Operacion = Convert.ToString(grdMoficarTransferencia.GetRowValues(grdMoficarTransferencia.FocusedRowIndex, "nroOperacion"));
            DateTime fecha = (DateTime)Session["fechaM"];
            if (Convert.ToDateTime(fecha) > dteFechaValorM.Date)
            {
                string titulo = "Mensaje";
                string mensaje = "La fecha modificada no debe ser menor a " + fecha.ToLongDateString();
                this.MostrarComentario(popupOK, lblmensOk, mensaje, titulo);
                return;
            }

            blGestionarTransferencia = new FacadeGestionarTransferencia_Imp();
            this.MostrarComentario(popupConfirmacionT, lblmenConfir, "Está seguro de modificar la transacción numero :" +Operacion);

            idopcion = "M";
        }

        void modificarTransaccion()
        {

            blGestionarTransferencia = new FacadeGestionarTransferencia_Imp();
            string idCliente = Convert.ToString(grdMoficarTransferencia.GetRowValues(grdMoficarTransferencia.FocusedRowIndex, "idcCliente"));
            try
            {
                TB_Transferencia objTransaccion = new TB_Transferencia();
                objTransaccion.nroOperacion = txtNrooperracionM.Text;
                objTransaccion.codigoBcoDestino = txtBancoDesM.Text;
                objTransaccion.fecCreacion = (DateTime)Session["fechaCreacionM"];
                objTransaccion.fecValor = dteFechaValorM.Date;
                objTransaccion.moneda = (string)cboMonedaM.Value;
                objTransaccion.monto = Convert.ToDecimal(txtMontoM.Text);
                objTransaccion.idcCliente = idCliente;
                objTransaccion.codBcoIntermediario = txtBancoIter1M.Text == string.Empty ? null : txtBancoIter1M.Text;
                objTransaccion.codBcoIntermediario1 = txtBancoIter2M.Text == string.Empty ? null : txtBancoIter2M.Text;
                //objTransaccion.codBcoIntermediario2 = txtBcoIntermediario2.Text == string.Empty ? null : txtBcoIntermediario2.Text;
                objTransaccion.detallePago = txtDetalleM.Text == string.Empty ? null : txtDetalleM.Text;
                objTransaccion.infBcoBco = txtINFBCOBCOM.Text == string.Empty ? null : txtINFBCOBCOM.Text;
                objTransaccion.observaciones = txtObservacionesM.Text == string.Empty ? null : txtObservacionesM.Text;
                objTransaccion.estado = "VERIFICADA";
                objTransaccion.comisiones = null;
                objTransaccion.textoDuplicidad = "";
                objTransaccion.codigoCorresponsal = txtBancoCorresponsalM.Text;
                objTransaccion.codigoOFAC = null;
                objTransaccion.matriculaOperador = idresponsable;
                objTransaccion.tipoCargo = (string)cboTipoCM.Value;
                objTransaccion.matriculaSupervisor = txtSupervisorM.Text;
                objTransaccion.cuentaBeneficiario = (string)cboCuentaBenefM.Value;
                objTransaccion.matriculaSupervisor = (string)Session["idSupervisorM"];

                if (blGestionarTransferencia.modificar(objTransaccion))
                {
                    string titulo = "Mensaje";
                    string mensaje = "Se actualizo correctamente la transacción.";
                    this.MostrarComentario(popupOK, lblmensOk, mensaje, titulo);
                }
                else
                {
                    string titulo = "Mensaje";
                    string mensaje = "Error al actualizar la transacción..";
                    this.MostrarComentario(popupOK, lblmensOk, mensaje, titulo);
                }

                this.limpiarcontroles();
            }

            catch (Exception ex)
            {
                popupOK.HeaderText = "Error al modificar Transacción";
                popupOK.ShowOnPageLoad = true;
                lblmensOk.Text = ex.Message;
            }
        }

        void cargarGrillaModificar()
        {
            blActualizarTransferencia = new FacadeActualizarTransferencia();
            try
            {
grdMoficarTransferencia.DataSource = blActualizarTransferencia.FiltroResponsableXMayor(idresponsable);
grdMoficarTransferencia.DataBind();
            }
            catch (Exception ex)
            {
                popupOK.HeaderText = "Error al cargar grilla Modificar Transferencia";
                popupOK.ShowOnPageLoad = true;
                lblmensOk.Text = ex.Message;
            }
        }
        void cargarCuentaModificar()
        {
            blSolicitarTransferencia = new FacadeSolicitarTransferencia_Imp();
            string cliente = Convert.ToString(grdMoficarTransferencia.GetRowValues(grdMoficarTransferencia.FocusedRowIndex, "idcCliente"));
            try
            {

                cboCuentaM.DataSource = blSolicitarTransferencia.listaClientexID(cliente);
                cboCuentaM.TextField = "nroCuenta";
                cboCuentaM.ValueField = "nroCuenta";
                cboCuentaM.DataBindItems();
                cboCuentaM.Items.Insert(0, new ListEditItem("[SELECCIONE]", ""));


            }
            catch (Exception ex)
            {
                popupOK.HeaderText = "Carga combo Cuenta Ordenante";
                popupOK.ShowOnPageLoad = true;
                lblmensOk.Text = ex.Message;
            }
        }

        void cargarCuentaBeneficiarioModificar()
        {
            blSolicitarTransferencia = new FacadeSolicitarTransferencia_Imp();
            string cliente = Convert.ToString(grdMoficarTransferencia.GetRowValues(grdMoficarTransferencia.FocusedRowIndex, "idcCliente"));
            try
            {

                cboCuentaBenefM.DataSource = blSolicitarTransferencia.listarBeneficiarioXCliente(cliente);
                cboCuentaBenefM.TextField = "cuentaBeneficiario";
                cboCuentaBenefM.ValueField = "cuentaBeneficiario";
                cboCuentaBenefM.DataBindItems();
                cboCuentaBenefM.Items.Insert(0, new ListEditItem("[SELECCIONE]", ""));
                //cboCuentaBeneficiario.SelectedIndex = 0;
            }
            catch (Exception ex)
            {
                popupOK.HeaderText = "Carga combo Cuenta Beneficiario";
                popupOK.ShowOnPageLoad = true;
                lblmensOk.Text = ex.Message;
            }
            
        }

        protected void cboCuentaBenefM_SelectedIndexChanged(object sender, EventArgs e)
        {
            List<TB_Beneficiario> listaBeneficiario = new List<TB_Beneficiario>();

            listaBeneficiario = this.obtenerBeneficiario(Convert.ToString(cboCuentaBenefM.Value));
            if (listaBeneficiario.Count != 0)
            {
                txtNombresBenM.Text = listaBeneficiario[0].nomBeneficiario;
                txtDireccionM.Text = listaBeneficiario[0].dirBeneficiario;
            }
        }

        protected void btnTrama_Click(object sender, EventArgs e)
        {

            this.generarTrama((string)Session["codTrama"]);
            Session["codTrama"] = null;
        }

        protected void grdBeneficiario_FocusedRowChanged(object sender, EventArgs e)
        {
            string cuenta = Convert.ToString(grdBeneficiario.GetRowValues(grdBeneficiario.FocusedRowIndex, "cuentaBeneficiario"));
            string nombre = Convert.ToString(grdBeneficiario.GetRowValues(grdBeneficiario.FocusedRowIndex, "nomBeneficiario"));
            string direccion = Convert.ToString(grdBeneficiario.GetRowValues(grdBeneficiario.FocusedRowIndex, "dirBeneficiario"));
            if (!IsPostBack)
            {
                return;
            }
            txtCuentaBen.Text = cuenta;
            txtNombreBen.Text = nombre;
            txtDireccionBen.Text = direccion;
        }

        protected void btnAgregarB_Click(object sender, EventArgs e)
        {
            if (this.validarCuenta(txtCuentaBen.Text))
            {
                popupOK.HeaderText = "Carga combo Cuenta Beneficiario";
                
                lblmensOk.Text = "La cuenta ya existe.";
                popupOK.ShowOnPageLoad = true;
                
                return;
            }
            Session["accionAB"] = 1;
            lblmensajeconfi.Text = "Esta seguro de registrar los datos ingresados.";
            popupConfirmarAB.ShowOnPageLoad = true;
        }

        protected void btnModificarB_Click(object sender, EventArgs e)
        {
            Session["accionAB"] = 2;
            lblmensajeconfi.Text = "Esta seguro de actualizar el registro seleccionado.";
            popupConfirmarAB.ShowOnPageLoad = true;

        }

        protected void btnEliminarB_Click(object sender, EventArgs e)
        {
            Session["accionAB"] = 3;
            lblmensajeconfi.Text = "Esta seguro de eliminar el registro seleccionado.";
            popupConfirmarAB.ShowOnPageLoad = true;

        }

        bool validarCuenta(string cuenta)
        {
            blSolicitarTransferencia = new FacadeSolicitarTransferencia_Imp();
            List<TB_Beneficiario> listaCuenta = new List<TB_Beneficiario>();
            bool resultado = false;
            try
            {
                listaCuenta = blSolicitarTransferencia.listarBeneficiario();

                foreach (var item in listaCuenta)
                {
                    if (item.cuentaBeneficiario == cuenta)
                    {
                        resultado = true;
                        break;
                    }
                }
            }
            catch (Exception ex)
                        {
                            popupOK.ShowOnPageLoad = true;
                lblmensOk.Text = ex.Message;
                popupOK.HeaderText = "Mensaje";
                popupOK.ShowOnPageLoad = true;
            }
            return resultado;
        }

        protected void btnAceptarB_Click(object sender, EventArgs e)
        {
            blActualizarBeneficiario = new FacadeActualizarBeneficiario();
            
            string idccliente = Convert.ToString(dgvTransfModif.GetRowValues(dgvTransfModif.FocusedRowIndex, "idcCliente"));
            if (Convert.ToInt32(Session["accionAB"]) == 1)
            {
                TB_Beneficiario objNewbeneficiario = new TB_Beneficiario();
                objNewbeneficiario.cuentaBeneficiario = txtCuentaBen.Text.ToUpper();
                objNewbeneficiario.nomBeneficiario = txtNombreBen.Text.ToUpper();
                objNewbeneficiario.dirBeneficiario = txtDireccionBen.Text.ToUpper();
                objNewbeneficiario.idcCliente = idccliente;
                if (blActualizarBeneficiario.InsertarBeneficiario(objNewbeneficiario))
                {
                    lblmensOk.Text = "Se registro correctamente.";
                    popupOK.ShowOnPageLoad = true;
                    //ScriptManager.RegisterStartupScript(this, typeof(string), "OPEN_WINDOW", "mensaje();", true);
                    //ClientScript.RegisterStartupScript(GetType(), "SetFocusScript", "mensaje();");
                }
                else
                {
                    lblmensOk.Text = "Ya está registrado el Beneficiario";
                    popupOK.ShowOnPageLoad = true;
                    //ScriptManager.RegisterStartupScript(this, typeof(string), "OPEN_WINDOW", "mensaje();", true);
                    //ClientScript.RegisterStartupScript(GetType(), "SetFocusScript", "mensaje();");
                }
            }
            if (Convert.ToInt32(Session["accionAB"]) == 2)
            {
                TB_Beneficiario objUpdatebeneficiario = new TB_Beneficiario();
                objUpdatebeneficiario.cuentaBeneficiario = txtCuentaBen.Text.ToUpper();
                objUpdatebeneficiario.nomBeneficiario = txtNombreBen.Text.ToUpper();
                objUpdatebeneficiario.dirBeneficiario = txtDireccionBen.Text.ToUpper();
                objUpdatebeneficiario.idcCliente = idccliente;
                if (blActualizarBeneficiario.ModificarBeneficiario(objUpdatebeneficiario))
                {
                    lblmensOk.Text = "Se actualizo correctamente.";
                    popupOK.ShowOnPageLoad = true;
                    //ScriptManager.RegisterStartupScript(this, typeof(string), "OPEN_WINDOW", "mensaje();", true);
                    //ClientScript.RegisterStartupScript(GetType(), "SetFocusScript", "mensaje();");

                }
                else
                {
                    lblmensOk.Text = "Error al actualizar";
                    popupOK.ShowOnPageLoad = true;
                    //ScriptManager.RegisterStartupScript(this, typeof(string), "OPEN_WINDOW", "mensaje();", true);

                }
            }
            if (Convert.ToInt32(Session["accionAB"]) == 3)
            {
                TB_Beneficiario objDeletebeneficiario = new TB_Beneficiario();
                objDeletebeneficiario.cuentaBeneficiario = txtCuentaBen.Text;
                objDeletebeneficiario.nomBeneficiario = txtNombreBen.Text;
                objDeletebeneficiario.dirBeneficiario = txtDireccionBen.Text;
                objDeletebeneficiario.idcCliente = idccliente;
                if (blActualizarBeneficiario.EliminarBeneficiario(objDeletebeneficiario))
                {
                    lblmensOk.Text = "Se eliminó correctamente.";
                    popupOK.ShowOnPageLoad = true;
                    //ScriptManager.RegisterStartupScript(this, typeof(string), "OPEN_WINDOW", "mensaje();", true);
                    //ClientScript.RegisterStartupScript(GetType(), "SetFocusScript", "mensaje();");
                }
                else
                {
                    lblmensOk.Text = "La cuenta Beneficiario esta relacionada con una transferencia realizada";
                    popupOK.ShowOnPageLoad = true;
                    //ScriptManager.RegisterStartupScript(this, typeof(string), "OPEN_WINDOW", "mensaje();", true);
                    //ClientScript.RegisterStartupScript(GetType(), "SetFocusScript", "mensaje();");
                }
            }
            
            this.cargarGrillaBeneficiario();
            this.cleanControls();
            string id = cboOrdCuenta.SelectedItem.Value.ToString() == string.Empty ? "0" : (string)cboOrdCuenta.Value;
            this.cargarComboCuentaBenef(id);
     
     
        }
        void cargarBeneficiario(string codigocliente)
        {
            //blSolicitarTransferencia = new FacadeSolicitarTransferencia_Imp();
            //try
            //{

            //    cboCuentaBeneficiario.DataSource = blSolicitarTransferencia.listarBeneficiarioXCliente(codigocliente);
            //    cboCuentaBeneficiario.TextField = "cuentaBeneficiario";
            //    cboCuentaBeneficiario.ValueField = "cuentaBeneficiario";
            //    cboCuentaBeneficiario.DataBindItems();
            //    cboCuentaBeneficiario.Items.Insert(0, new ListEditItem("[SELECCIONE]", ""));
            //    //cboCuentaBeneficiario.SelectedIndex = 0;
            //}
            //catch (Exception ex)
            //{
            //    popupOK.HeaderText = "Cargando Combo Beneficiario";
            //    popupOK.ShowOnPageLoad = true;
            //    lblmensOk.Text = ex.Message;
            //}

        }
        void cleanControls()
        {
            txtCuentaBen.Text = string.Empty;
            txtNombreBen.Text = string.Empty;
            txtDireccionBen.Text = string.Empty;
        }
        void cargarGrillaBeneficiario()
        {
            //blGestionarTransferncia =new FacadeGestionarTransferencia_Imp();
            blSolicitarTransferencia = new FacadeSolicitarTransferencia_Imp();
            string idOpcion1 = Convert.ToString(dgvTransfModif.GetRowValues(dgvTransfModif.FocusedRowIndex, "idcCliente"));
           
            if (idOpcion1 == string.Empty)
            {
                idOpcion1 = "0";
            }
            try
            {
                grdBeneficiario.DataSource = blSolicitarTransferencia.listarBeneficiarioXCliente(idOpcion1);
                grdBeneficiario.DataBind();
            }
            catch (Exception ex)
            {
                popupOK.ShowOnPageLoad = true;
                lblmensOk.Text = ex.Message;
            }
        }

        protected void btnAgregarBenef_Click(object sender, EventArgs e)
        {
            if (cboOrdCuenta.SelectedIndex != 0)
            {
                this.cargarGrillaBeneficiario();
                //Session["accionBeneficiario"] = cboCuenta.Value;
                //Response.Redirect("wfrmActualizarBeneficiario.aspx");
                popupAgregarBenef.ShowOnPageLoad = true;

            }
            else
            {
                popupOK.HeaderText = "Mensaje";
                popupOK.ShowOnPageLoad = true;
                lblmensOk.Text = "Seleccion una Cuenta de Ordenante";

            }
        }

        protected void cboOrdCuenta_SelectedIndexChanged1(object sender, EventArgs e)
        {
           string cliente = Convert.ToString(dgvTransfModif.GetRowValues(dgvTransfModif.FocusedRowIndex, "idcCliente"));
           if (cliente==string.Empty)
           {
               cliente = "0";
               
           }
            txtOrdNom.Text = this.obtenerCliente(cliente);
        }

    }
}